/*
 * DTOTipoAsteroide.cpp
 *
 *  Created on: Apr 1, 2012
 *      Author: gonzalo
 */

#include "DTOTipoAsteroide.h"
#include "DTOImage.h"

DTOTipoAsteroide::DTOTipoAsteroide(std::string nombre,std::string imagen,int ancho,int alto,int rotacion)
:DTO(ASTEROIDE,SERVER_OWN){
	this->nombre = nombre;
	this->imagePath = imagen;
	this->ancho = ancho;
	this->alto = alto;
	this->rotacion = rotacion;
}

DTOTipoAsteroide::DTOTipoAsteroide()
: DTO(ASTEROIDE,SERVER_OWN){
	this->nombre = TA_DEFAULT_NAME;
	this->imagePath = TA_DEFAULT_IMAGE;
	this->ancho = TA_DEFAULT_WIDTH;
	this->alto = TA_DEFAULT_HEIGTH;
	this->rotacion = TA_DEFAULT_ROTATION;
}


DTOTipoAsteroide::DTOTipoAsteroide(std::string& aDeserealizar,std::string owner) : DTO(SHIP_STATUS,owner){
	deserializar(aDeserealizar,owner);
}

std::string DTOTipoAsteroide::serializar(){
	std::stringstream retorno;

	DTOImage* imagen = new DTOImage(this->imagePath);

	retorno << UtilString::TOlenghtStringStringValue(nombre);
	retorno << UtilString::TOlenghtStringStringValue(ancho);
	retorno << UtilString::TOlenghtStringStringValue(alto);
	retorno << UtilString::TOlenghtStringStringValue(rotacion);
	retorno << imagen->serializar();

	delete imagen;

	return retorno.str();
}

void DTOTipoAsteroide::deserializar(std::string& string,std::string owner){
	nombre = UtilString::FROMlenghtStringStringValue(string);
	ancho = UtilString::stringToInt(UtilString::FROMlenghtStringStringValue(string));
	alto = UtilString::stringToInt(UtilString::FROMlenghtStringStringValue(string));
	rotacion = UtilString::stringToInt(UtilString::FROMlenghtStringStringValue(string));

	DTOImage* imagen = new DTOImage(string,owner);
	this->imagePath = imagen->getImagePath();
}

